﻿using System;
namespace XERP.Domain.WarehouseDomain.Services
{
    public interface IWarehouseServiceAgent
    {
        void AddToWarehouseCodeRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseCode itemCode);
        void AddToWarehouseLocationBinCodeRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBinCode itemCode);
        void AddToWarehouseLocationBinRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBin item);
        void AddToWarehouseLocationBinTypeRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBinType itemType);
        void AddToWarehouseLocationCodeRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationCode itemCode);
        void AddToWarehouseLocationRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocation item);
        void AddToWarehouseLocationTypeRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationType itemType);
        void AddToWarehouseRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.Warehouse item);
        void AddToWarehouseTypeRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseType itemType);
        void CommitWarehouseCodeRepository();
        void CommitWarehouseLocationBinCodeRepository();
        void CommitWarehouseLocationBinRepository();
        void CommitWarehouseLocationBinTypeRepository();
        void CommitWarehouseLocationCodeRepository();
        void CommitWarehouseLocationRepository();
        void CommitWarehouseLocationTypeRepository();
        void CommitWarehouseRepository();
        void CommitWarehouseTypeRepository();
        void DeleteFromWarehouseCodeRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseCode itemCode);
        void DeleteFromWarehouseLocationBinCodeRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBinCode itemCode);
        void DeleteFromWarehouseLocationBinRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBin item);
        void DeleteFromWarehouseLocationBinTypeRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBinType itemType);
        void DeleteFromWarehouseLocationCodeRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationCode itemCode);
        void DeleteFromWarehouseLocationRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocation item);
        void DeleteFromWarehouseLocationTypeRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationType itemType);
        void DeleteFromWarehouseRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.Warehouse item);
        void DeleteFromWarehouseTypeRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseType itemType);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.Address> GetAddressesReadOnly(string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.Temp> GetMetaData(string tableName);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.Plant> GetPlantsReadOnly(string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.Warehouse> GetWarehouseByID(string itemID, string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseCode> GetWarehouseCodeByID(string itemCodeID, string companyID);
        System.Data.Services.Client.EntityStates GetWarehouseCodeEntityState(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseCode itemCode);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseCode> GetWarehouseCodes(string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseCode> GetWarehouseCodes(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseCode itemCodeQuerryObject, string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseCode> GetWarehouseCodesReadOnly(string companyID);
        System.Data.Services.Client.EntityStates GetWarehouseEntityState(XERP.Domain.WarehouseDomain.WarehouseDataService.Warehouse item);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBin> GetWarehouseLocationBinByID(string itemID, string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBinCode> GetWarehouseLocationBinCodeByID(string itemCodeID, string companyID);
        System.Data.Services.Client.EntityStates GetWarehouseLocationBinCodeEntityState(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBinCode itemCode);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBinCode> GetWarehouseLocationBinCodes(string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBinCode> GetWarehouseLocationBinCodes(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBinCode itemCodeQuerryObject, string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBinCode> GetWarehouseLocationBinCodesReadOnly(string companyID);
        System.Data.Services.Client.EntityStates GetWarehouseLocationBinEntityState(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBin item);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBin> GetWarehouseLocationBins(string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBin> GetWarehouseLocationBins(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBin itemQuerryObject, string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBin> GetWarehouseLocationBinsReadOnly(string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBin> GetWarehouseLocationBinsReadOnly(string companyID, string plantID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBin> GetWarehouseLocationBinsReadOnly(string companyID, string plantID, string warehouseID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBin> GetWarehouseLocationBinsReadOnly(string companyID, string plantID, string warehouseID, string warehouseLocationID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBinType> GetWarehouseLocationBinTypeByID(string itemTypeID, string companyID);
        System.Data.Services.Client.EntityStates GetWarehouseLocationBinTypeEntityState(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBinType itemType);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBinType> GetWarehouseLocationBinTypes(string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBinType> GetWarehouseLocationBinTypes(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBinType itemTypeQuerryObject, string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBinType> GetWarehouseLocationBinTypesReadOnly(string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocation> GetWarehouseLocationByID(string itemID, string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationCode> GetWarehouseLocationCodeByID(string itemCodeID, string companyID);
        System.Data.Services.Client.EntityStates GetWarehouseLocationCodeEntityState(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationCode itemCode);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationCode> GetWarehouseLocationCodes(string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationCode> GetWarehouseLocationCodes(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationCode itemCodeQuerryObject, string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationCode> GetWarehouseLocationCodesReadOnly(string companyID);
        System.Data.Services.Client.EntityStates GetWarehouseLocationEntityState(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocation item);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocation> GetWarehouseLocations(string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocation> GetWarehouseLocations(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocation itemQuerryObject, string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocation> GetWarehouseLocationsReadOnly(string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocation> GetWarehouseLocationsReadOnly(string companyID, string plantID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocation> GetWarehouseLocationsReadOnly(string companyID, string plantID, string warehouseID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationType> GetWarehouseLocationTypeByID(string itemTypeID, string companyID);
        System.Data.Services.Client.EntityStates GetWarehouseLocationTypeEntityState(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationType itemType);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationType> GetWarehouseLocationTypes(string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationType> GetWarehouseLocationTypes(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationType itemTypeQuerryObject, string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationType> GetWarehouseLocationTypesReadOnly(string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.Warehouse> GetWarehouses(string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.Warehouse> GetWarehouses(XERP.Domain.WarehouseDomain.WarehouseDataService.Warehouse itemQuerryObject, string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.Warehouse> GetWarehousesReadOnly(string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.Warehouse> GetWarehousesReadOnly(string companyID, string plantID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseType> GetWarehouseTypeByID(string itemTypeID, string companyID);
        System.Data.Services.Client.EntityStates GetWarehouseTypeEntityState(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseType itemType);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseType> GetWarehouseTypes(string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseType> GetWarehouseTypes(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseType itemTypeQuerryObject, string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseType> GetWarehouseTypesReadOnly(string companyID);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.Warehouse> RefreshWarehouse(string autoIDs);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseCode> RefreshWarehouseCode(string autoIDs);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocation> RefreshWarehouseLocation(string autoIDs);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBin> RefreshWarehouseLocationBin(string autoIDs);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBinCode> RefreshWarehouseLocationBinCode(string autoIDs);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBinType> RefreshWarehouseLocationBinType(string autoIDs);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationCode> RefreshWarehouseLocationCode(string autoIDs);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationType> RefreshWarehouseLocationType(string autoIDs);
        System.Collections.Generic.IEnumerable<XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseType> RefreshWarehouseType(string autoIDs);
        void UpdateWarehouseCodeRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseCode itemCode);
        void UpdateWarehouseLocationBinCodeRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBinCode itemCode);
        void UpdateWarehouseLocationBinRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBin item);
        void UpdateWarehouseLocationBinTypeRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationBinType itemType);
        void UpdateWarehouseLocationCodeRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationCode itemCode);
        void UpdateWarehouseLocationRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocation item);
        void UpdateWarehouseLocationTypeRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseLocationType itemType);
        void UpdateWarehouseRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.Warehouse item);
        void UpdateWarehouseTypeRepository(XERP.Domain.WarehouseDomain.WarehouseDataService.WarehouseType itemType);
        bool WarehouseCodeExists(string itemCodeID, string companyID);
        bool WarehouseCodeRepositoryIsDirty();
        bool WarehouseExists(string itemID, string companyID, string plantID);
        bool WarehouseLocationBinCodeExists(string itemCodeID, string companyID);
        bool WarehouseLocationBinCodeRepositoryIsDirty();
        bool WarehouseLocationBinExists(string itemID, string companyID, string warehouseLocationID, string warehouseID, string plantID);
        bool WarehouseLocationBinRepositoryIsDirty();
        bool WarehouseLocationBinTypeExists(string itemTypeID, string companyID);
        bool WarehouseLocationBinTypeRepositoryIsDirty();
        bool WarehouseLocationCodeExists(string itemCodeID, string companyID);
        bool WarehouseLocationCodeRepositoryIsDirty();
        bool WarehouseLocationExists(string itemID, string companyID, string warehouseID, string plantID);
        bool WarehouseLocationRepositoryIsDirty();
        bool WarehouseLocationTypeExists(string itemTypeID, string companyID);
        bool WarehouseLocationTypeRepositoryIsDirty();
        bool WarehouseRepositoryIsDirty();
        bool WarehouseTypeExists(string itemTypeID, string companyID);
        bool WarehouseTypeRepositoryIsDirty();
    }
}
